// albergo.cpp : Defines the entry point for the console application.
//
/*
scrivere un proramma un albergo ha 150 camere suddivise su 4 piani, ciascuna camera è caratterizzaa da numero della camera piano numero dei letti e stato
che può essere occupato o libero. camere da 4
1)visualizzare stampare a video il numero di camere per piano
2) letto in input il numero di piano visualizzare il numero di camere libere e occupate
3)letto in input il numero di ospiti visualizzare se è presente nell'albergo una camera libera che li possa ospitare, in caso positivo visualizzare il numero della
camera e il piano.
*/
#include "stdafx.h"
#include <iostream>
#include <time.h>
#define NCA 150
using namespace std;
typedef struct {
	int numero;
	int letti;
	bool occupato=false;
}CAMERE;
void carica(CAMERE ar[NCA]);
void visualizza(CAMERE ar[NCA]);
void camere(CAMERE ar[NCA], int piani);
void ospiti(CAMERE ar[NCA], int ospiti);
void menù();
int main()
{
	
	menù();
    return 0;
}
void menù() {
	CAMERE ar[NCA];
	int scelta = 0;
	int piano = 0;
	int ospiti1 = 0;
	carica(ar);
	do {
		system("cls");
		printf("menù\n");
		printf("0.esci\n");
		printf("1.visualizza\n");
		printf("2.numero di camere\n");
		printf("3.prenotazioni\n");
		scanf_s("%d", &scelta, sizeof(int));
		switch (scelta) {
		case 0:
			printf("arrivederci e lasiate la mancia\n");
			break;
		case 1:
			visualizza(ar);
			system("pause");
			break;
		case 2:
			printf("inserire piano\n");
			scanf_s("%d", &piano, sizeof(int));
			camere(ar, piano);
			system("pause");
			break;
		case 3:
			printf("inserire ospiti\n");
			scanf_s("%d", &ospiti1, sizeof(int));
			ospiti(ar, ospiti1);
			system("pause");
			break;
		default:
			printf("valore non valido\n");
			break;

		}

	} while (scelta != 0);
}
void carica(CAMERE ar[NCA]) {
	int piano = 0;
	srand(time(NULL));

	for (int i = 0; i < NCA; i++) {
		if (i <= 37) {
			piano = 100;
			ar[i].numero = piano+i;
		}
		if ((i >= 37) && (i <= 74)) {
			piano = 200;
			ar[i].numero = piano+i;
		}
		if ((i >= 74) && (i <= 112)) {
			piano = 3000;
			ar[i].numero = piano + i;
		}
		if ((i >= 122) && (i <= 150)) {
			piano = 4000;
			ar[i].numero = piano + i;
		}
	}
	for (int j = 0; j < NCA; j++) {
		ar[j].letti = 2 + rand() % (5);
	}
	
}
void ospiti(CAMERE ar[NCA], int ospiti) {
	int stanza = 0;
	for (int i = 0; i < NCA; i++) {
		if ((ar[i].letti == ospiti) && (ar[i].occupato == false)) {
			stanza = i;
			ar[i].occupato = true;
			break;
		}
	}
		printf("il numero della stanza è %d \n", ar[stanza].numero);
		if (ar[stanza].numero <= 37) {
			printf("piano 1\n");
		}
		if ((ar[stanza].numero >37)&&(ar[stanza].numero <= 74)) {
			printf("piano 2\n");
		}
		if ((ar[stanza].numero>74)&&(ar[stanza].numero <= 112)) {
			printf("piano 3\n");
		}
		if ((ar[stanza].numero>112)&&(ar[stanza].numero <= 150)) {
			printf("piano 4\n");
		}

	
}

void visualizza(CAMERE ar[NCA]) {
	int conts = 0;
	int conts1 = 0;//secondo piano
	int conts2 = 0;//terzo piano
	int conts3 = 0;//quarto piano
	for (int i = 0; i < NCA; i++) {
		if (ar[i].numero <= 137) {
			conts++;
		}
		if ((ar[i].numero>137)&&(ar[i].numero <= 274)) {
			conts1++;
		}
		if ((ar[i].numero>274)&&(ar[i].numero <= 3112)) {
			conts2++;
		}
		if ((ar[i].numero>3112)&&(ar[i].numero <= 4150)) {
			conts3++;
		}
	}
		printf("al primo piano ci sono %d stanze\n", conts);
		printf("al secondo piano ci sono %d stanze\n", conts1);
		printf("al terzo piano ci sono %d stanze\n", conts2);
		printf("al quarto  piano ci sono %d stanze\n", conts3);
}
void camere(CAMERE ar[NCA], int piani) {
	int conts = 0; //primo 
	int conts1 = 0;//secondo piano
	int conts2 = 0;//terzo piano
	int conts3 = 0;//quarto piano

	int conts4 = 0;//primo occupato 
	int conts5 = 0;//secondo occupato
	int conts6 = 0;//trzo occupato
	int conts7 = 0;//quarto occupto
	//primo piano
	if (piani == 1) {
		for (int i = 0; i <= 37; i++) {
			if (ar[i].occupato == false) {
				conts++;
			}
			else
				conts4++;
		}
		printf("al piano 1 sono libere %d stanze e sono occupate %d\n", conts, conts4);

	}
	//secondo piano
	if (piani == 2) {
		for (int j = 38; j <= 74; j++) {
			if (ar[j].occupato == false) {
				conts1++;
			}
			else
				conts5++;
		}
		printf("al piano 2 sono libere %d stanze e sono occupate %d\n", conts1, conts5);
	}
	//terzo piano
	if (piani == 3) {
		for (int u = 74; u <= 112; u++) {
			if (ar[u].occupato == false) {
				conts2++;
			}
			else
				conts6++;
		}
		printf("al piano 3 sono libere %d stanze e sono occupate %d\n", conts2, conts6);
	}

	//quarto piano
	if (piani == 4) {
		for (int l = 112; l <= 150; l++) {
			if (ar[l].occupato == false) {
				conts3++;
			}
			else {
				conts7++;
			}
		}

		printf("al piano 4 sono libere %d stanze e sono occupate %d\n", conts3, conts7);
	}
}
	


